// PROGRAMA : CTLPC002
// BIBLIOTECA : PRODETR
// SISTEMA : INFORMACOES DE SEGURANCA PUBLICA - SISP
// CLIENTE : SEJUSP - SEC. DA JUSTICA E SEGURANCA PUBLICA
// INSTITUTO DE IDENTIFICACAO, DETRAN E SEFAZ
// PROGRAMADOR : EDU/FM DATA: 27/05/92
// OBJETIVO : CONSULTA DOC. EMITIDOS P/INTERVALO DE DATA
// ATUALIZACOES DATA
// PROGRAMA : CTLPC002 05/11/1997
// BIBLIOTECA : SISP
// PROGRAMADOR :
// OBJETIVO : ADAPTACAO PARA O SHOPPING DO CIDADAO (P200)
// : ALTERACAO DE TELA 28/09/1999
// : ACERTO DA DATA N6 PARA N8 28/09/1999
// OBS : ESTE PROGRAMA FOI REESTRUTURADO POR SOLON MIRANDA
package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.vti.sisp_sicrim.antigo.controller.relatorios.Ctlpc002Report;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Ctlpc002A;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Ctltc001;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Ctltc002;
import br.com.vti.sisp_sicrim.antigo.model.SicControle;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.model.Sisldat8;
import br.com.vti.sisp_sicrim.antigo.model.Sisll001;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.Sisgsisp;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Ctlpc002 OBJETIVO : CONSULTA DOC. EMITIDOS P/INTERVALO DE DATA *
 * 
 * @author Incode - Data: mai/2014
 * 
 */
@Resource
@Path("/antigo/ctlpc002")
public class Ctlpc002 {
	// Views utilizadas
	SicControle vwDvecon2 = new SicControle();
	SicControle vwDvecon = new SicControle();
	// vwDvecad = new;
	SicTabelas vwTabele = new SicTabelas();
	SicControle dvecad = new SicControle();
	// dvecad = new;
	// Telas/relatorios utilizados
	Ctlpc002A ctlpc002A;
	Ctltc001 ctltc001;
	Ctltc002 ctltc002;
	Ctlpc002Report report;
	// Includes utilizados
	Sisldat8 sisldat8 = new Sisldat8();
	Sisll001 sisll001 = new Sisll001();
	// Areas globais / session
	Sisgsisp sisgsisp;
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	Ctlpc002 ctlpc002Anterior;
	String faseproc = "0";

	private int i = 0;
	private String destin = "";
	private String endere = "";
	private int cont = 0;
	private long valpago = 0;

	private Ctlpc002A preMapas() {
		int ind;
		ctlpc002A = new Ctlpc002A(true, sessao);
		ctltc001 = new Ctltc001(true, sessao);
		ctltc002 = new Ctltc002(true, sessao);
		ctltc001.setNavegar("../ctlpc002/executar");

		ctlpc002A.setDataCorrente(UtilBean.obtemDataDia());
		ctlpc002A.setNomeClasse(this.getClass().getSimpleName().toUpperCase());

		// Par�grafo: i0()
		return ctlpc002A;
	}

	public Ctlpc002(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public InputStreamDownload executar(Ctlpc002A ctlpc002A, Ctltc001 ctltc001, Ctltc002 ctltc002) {
		try {
			return main(ctlpc002A, ctltc001, ctltc002);
		} catch (Exception e) {
			ExceptionProgram excp = new ExceptionProgram();
			excp.trataErroSiscerro(e, sessao, this.getClass().getSimpleName());
		}
		return null;
	}

	private InputStreamDownload main(Ctlpc002A pctlpc002A, Ctltc001 pctltc001, Ctltc002 pctltc002) throws Exception {
		if (pctltc002 == null && pctlpc002A == null && pctltc001 == null) {
			primeiraVez = true;
			// ctltc002 = new Ctltc002 (primeiraVez);
			ctlpc002A = preMapas();
			ctlpc002A.setNavegar("../ctlpc002/executar");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return null;
		} else {
			restaurarEstados(pctlpc002A, pctltc001, pctltc002);
		}
		if (pctlpc002A != null && pctlpc002A.getFuncao() != null && pctlpc002A.getFuncao().equals("3")) {
			Idcpm001 idcpm001 = new Idcpm001(result, sessao);
			idcpm001.executar(null);

			return null;
		}
		if (pctltc001 != null) {

			ctltc002.setNavegar("../ctlpc002/executar");
			result.include("ctltc002", ctltc002);
			sessao.setAtributo("CTLPC002", this);
			ctltc002.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		if (pctltc002 != null && pctltc002.getFuncao() != null && pctltc002.getFuncao().equals("3")) {

			ctlpc002A = preMapas();
			ctlpc002A.setNavegar("../ctlpc002/executar");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		// DEFINE PRINTER(FM = 1)
		// DEFINE PRINTER(XXXX = 1)
		report = new Ctlpc002Report();

		ctlpc002A.receberTela(false, result);
		if (!UtilBean.funcao.equals(UtilBean.ctt_processa)) {
			ctlpc002A.enviarMensagem(null, "");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		ctltc001.setConf("S");
		if (ctlpc002A.getTidoem() > 0) {
			switch (sessao.getSisgsisp().getVlt()) {
			case 02: {
				if (!(ctlpc002A.getTidoem() == 19 || ctlpc002A.getTidoem() == 27 || ctlpc002A.getTidoem() == 35 || ctlpc002A.getTidoem() == 94 || ctlpc002A.getTidoem() == 98)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			case 03: {
				if (!(ctlpc002A.getTidoem() == 60 || ctlpc002A.getTidoem() == 51 || ctlpc002A.getTidoem() == 58)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			case 04: {
				if (!(ctlpc002A.getTidoem() == 94)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			case 06: {
				if (!(ctlpc002A.getTidoem() == 98)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			case 07: {
				if (!(ctlpc002A.getTidoem() == 43 || ctlpc002A.getTidoem() == 78 || ctlpc002A.getTidoem() == 86 || ctlpc002A.getTidoem() == 79)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			case 13: {
				if (!(ctlpc002A.getTidoem() == 88 || ctlpc002A.getTidoem() == 89 || ctlpc002A.getTidoem() == 90)) {
					ctlpc002A.enviarMensagem("tidoem", "");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					return null;
				}
				break;
			}
			default: {
				break;
			}
			}
		}
		if (!ctlpc002A.getOperacao().equals("CED")) {
			testar();
		}

		if (!UtilBean.validarMascara(ctlpc002A.getDatini(), "yyyyMMdd")) {
			ctlpc002A.enviarMensagem("adt", "");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		if (!UtilBean.validarMascara(ctlpc002A.getDatfim(), "yyyyMMdd")) {
			ctlpc002A.enviarMensagem("afi", "");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		if (ctlpc002A.getDatini() > ctlpc002A.getDatfim()) {
			ctlpc002A.enviarMensagem("adt", "");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		if (UtilBean.validaSelecao(ctlpc002A.getConimp())) {
			ctlpc002A.enviarMensagem("conimp[1]", "");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		report.setDtini(ctlpc002A.getDatini());
		report.setDtini((int) funcoes.sissd002(report.getDtini()));
		// INVERTE DATA
		report.setDtfim(ctlpc002A.getDatfim());
		report.setDtfim((int) funcoes.sissd002(report.getDtfim()));

		if (!ctlpc002A.getConimp(2).trim().equals("")) {
			return mostra();
		} else {

			if (ctltc002.getConf().equals("N")) {
				preMapas();
				ctlpc002A.setMensagemSaida("CONSULTA INTERROMPIDA OK");
				result.include("ctlpc002A", ctlpc002A);
				sessao.setAtributo("CTLPC002", this);
				ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return null;
			}

			if (ctltc002.getOpc() > 0) {
				saida(ctltc001);
				return null;
			}

			ctltc002.setEmi0(new int[15]);
			ctltc002.setEmi0(new int[15]);
			ctltc002.setDoc0(new int[15]);
			ctltc002.setReq0(new String[15]);
			ctltc002.setMat0(new int[15]);
			ctltc002.setCha0(new String[15]);
			ctltc002.setDtini(UtilBean.inverteData(ctlpc002A.getDatini()));
			ctltc002.setDtfim(UtilBean.inverteData(ctlpc002A.getDatfim()));
			while (vwDvecon.pesquisaDataEmissaoFaixa(ctlpc002A.getDatini(), ctlpc002A.getDatfim())) {
				if (vwDvecon.fimDados()) {
					if (i > 0 && ctltc001.getOperacao().equals("CED")) {
						//
						saida(ctltc001);
					}
				}
				cont += 1;
				if (cont > 10) {
					cont = 0;

					// ctlpc002B.enviarReceberTela(false, result);
					// CTLPC002_B
					// CTLPC002
				}
				if (ctlpc002A.getTidoem() > 0) {
					if (!(vwDvecon.getTipoDocumento() == ctlpc002A.getTidoem())) {
						continue;
					}
				}
				if (ctlcc002()) {
					i += 1;
					ctltc002.setEmi0(i, vwDvecon.getDataEmissao());
					ctltc002.setEmi0(i, (int) funcoes.sissd002(ctltc002.getEmi0(i)));
					ctltc002.setDoc0(i, vwDvecon.getTipoDocumento());
					ctltc002.setReq0(i, vwDvecon.getNomeRequerente());
					ctltc002.setMat0(i, vwDvecon.getMatriculaFunc());
					ctltc002.setCha0(i, vwDvecon.getNumeroChassi());
					// report.setDiacntchassi(vwDvecon.getNumeroChassi());
					// report.setDincntmatfun(vwDvecon.getMatriculaFunc());
					ctlpc002A.setMensagemSaida("CONSULTA EFETUADA OK");
					if (i == 14 || vwDvecon.fimDados()) {
						saida(ctltc001);
						if (vwDvecon.fimDados()) {
							ctltc002.setMensagem("FIM DA CONSULTA N�O(N) SAIR OU SELECIONE O REGISTRO");
						} else {
							ctltc002.setMensagem("PROCESSAR PARA CONTINUAR OU N�O(N) PARA SAIR");
						}
						break;
					}

				}

			}
		}
		if (vwDvecon.registrosProcessados() == 0) {
			ctlpc002A.enviarMensagem(null, "N�O EXISTE REGISTROS NO PER�ODO INFORMADO");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}
		sessao.setAtributo("CTLPC002", this);
		result.include("ctltc002", ctltc002);
		ctltc002.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
		return null;
	}

	private void saida(Ctltc001 ctltc001) throws Exception {

		ctltc002.receberTela(false, result);
		// RELACAO DOS DOCS. EMITIDOS
		if (!ctltc001.getOperacao().equals("CED")) {
			testar();
		}
		if (ctltc002.getOpc() > 0) {
			i = 1;
			for (int i2 = 1; i2 <= ctltc002.getCha0().length; i2++) {
				if (ctltc002.getCha0()[i] != null && !ctltc002.getCha0()[i].equals("")) {
					i++;
				}

			}
			if (ctltc002.getOpc() > i) {
				ctltc002.enviarMensagem("opc", "NUMERO SELECIONADO INVALIDO");
				sessao.setAtributo("CTLPC002", this);
				result.include("ctltc002", ctltc002);
				ctltc002.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			do {
				ctltc001.setChave(ctltc002.getCha0(ctltc002.getOpc()));
				vwDvecon.fecha();
				while (vwDvecon.leituraNumeroChassiMaiorig(ctltc001.getChave())) {
					ctlcc002();
					ctlcc001(ctltc001);
					if (!ctltc001.getChave().trim().equals("")) {
						break;
					}
				}

				if (ctltc002.getConf().equals("N") && ctltc001.getOperacao().equals("CED")) {
					ctltc001.setConf("S");

					ctltc002.receberTela(false, result);
				}
				if (ctltc002.getConf().equals("N")) {

					ctlpc002A.setMensagemSaida("CONSULTA INTERROMPIDA OK");
					result.include("ctlpc002A", ctlpc002A);
					sessao.setAtributo("CTLPC002", this);
					ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
					break;
				}
				sessao.setAtributo("CTLPC002", this);
				result.include("ctltc001", ctltc001);
				if (!result.used()) {
					ctltc001.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				}
				return;
			} while (!(ctltc002.getOpc() == 0));
		}
		i = 0;
		/*
		 * for (int i1 = 1; i1 <= 14; i1++) { ctltc002.setCha0(i1, ""); ctltc002.setDoc0(i1, 0); ctltc002.setEmi0(i1, 0); ctltc002.setMat0(i1, 0); ctltc002.setReq0(i1, ""); }
		 */
		if (!ctltc001.getOperacao().equals("CED")) {
			testar();
		}
	}

	private void testar() {
		funcoes.sissm001(result, sessao);
	}

	private InputStreamDownload mostra() throws Exception {
		// DEFINE PRINTER(FM = 1)
		ctltc001.setConf("S");
		// RELATORIO FM PS=60 LS=133 SG=OFF
		report.setPageSize(60);
		report.setLineSize(133);
		report.setDataCorrente(UtilBean.obtemDataCorrente());
		while (vwDvecon.pesquisaDataEmissaoFaixa(ctlpc002A.getDatini(), ctlpc002A.getDatfim())) {

			cont += 1;
			if (cont > 10) {
				cont = 0;

				// ctlpc002B.enviarReceberTela(false, result);
			}
			if (ctlpc002A.getTidoem() > 0) {
				if (!(vwDvecon.getTipoDocumento() == ctlpc002A.getTidoem())) {
					continue;
				}
			}
			switch (sessao.getSisgsisp().getVlt()) {
			case 02: {
				if (!(vwDvecon.getTipoDocumento() == 19 || vwDvecon.getTipoDocumento() == 27 || vwDvecon.getTipoDocumento() == 35 || vwDvecon.getTipoDocumento() == 94 || vwDvecon.getTipoDocumento() == 98)) {
					continue;
				}
				break;
			}
			case 03: {
				if (!(vwDvecon.getTipoDocumento() == 60 || vwDvecon.getTipoDocumento() == 51 || vwDvecon.getTipoDocumento() == 58)) {
					continue;
				}
				break;
			}
			case 04: {
				if (!(vwDvecon.getTipoDocumento() == 94)) {
					continue;
				}
				break;
			}
			case 06: {
				if (!(vwDvecon.getTipoDocumento() == 98 || vwDvecon.getTipoDocumento() == 19 || vwDvecon.getTipoDocumento() == 27 || vwDvecon.getTipoDocumento() == 35)) {
					continue;
				}
				break;
			}
			case 07: {
				if (!(vwDvecon.getTipoDocumento() == 43 || vwDvecon.getTipoDocumento() == 78 || vwDvecon.getTipoDocumento() == 86)) {
					continue;
				}
				break;
			}
			case 13: {
				if (!(vwDvecon.getTipoDocumento() == 88 || vwDvecon.getTipoDocumento() == 89 || vwDvecon.getTipoDocumento() == 90)) {
					continue;
				}
				break;
			}
			default: {
				continue;
			}
			}
			report.setDiacntrequer(vwDvecon.getNomeRequerente());
			endere = vwDvecon.getEnderecoRequerente();
			report.setDatemi(vwDvecon.getDataEmissao());
			// report.setDatemi(funcoes.sissd002(ctltc001.getDatemi()));
			destin = vwDvecon.getDestinoSolicitacao();

			report.setDiacntchassi(vwDvecon.getNumeroChassi());
			report.setDiacntrequer(vwDvecon.getNomeRequerente());
			// while (dvecad.pesquisaDiaveiChassi(vwDvecon.getNumeroChassi())) {
			// report.setPlac(DIAVEI - PLACAS);
			// }
			// if (dvecad.registrosProcessados() == 0) {
			// ctlpc002A.setPlac(StringUtils.repeat("*", 7));
			// }
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 19);
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", vwDvecon.getTipoDocumento());
			report.setTipod("");
			vwTabele.chalfa = funcoes.sisst002(19, vwDvecon.getTipoDocumento(), vwTabele.chalfa);
			report.setTipod(vwTabele.chalfa);

			// RELATORIO
			report.gravaRelatorio(2);

			// RELATORIO
			report.setPlac("");

		}

		if (vwDvecon.registrosProcessados() == 0) {
			ctlpc002A.enviarMensagem(null, "N�O EXISTE REGISTROS NO PER�ODO INFORMADO");
			result.include("ctlpc002A", ctlpc002A);
			sessao.setAtributo("CTLPC002", this);
			ctlpc002A.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return null;
		}

		return report.imprimir();
	}

	private void restaurarEstados(Ctlpc002A pctlpc002A, Ctltc001 pctltc001, Ctltc002 pctltc002) {
		this.ctlpc002Anterior = (Ctlpc002) sessao.getAtributo("CTLPC002");
		if (pctlpc002A != null) {
			ctlpc002A = pctlpc002A;
		} else {
			ctlpc002A = this.ctlpc002Anterior.ctlpc002A;
		}
		ctlpc002A.setSessao(sessao);
		if (pctltc001 != null) {
			ctltc001 = pctltc001;
			vwDvecon = ctlpc002Anterior.vwDvecon;
			vwTabele = ctlpc002Anterior.vwTabele;
			dvecad = ctlpc002Anterior.dvecad;
		} else {
			ctltc001 = this.ctlpc002Anterior.ctltc001;
		}
		ctltc001.setSessao(sessao);
		if (pctltc002 != null) {
			ctltc002 = pctltc002;
			vwDvecon = ctlpc002Anterior.vwDvecon;
			vwTabele = ctlpc002Anterior.vwTabele;
			dvecad = ctlpc002Anterior.dvecad;

		} else {
			ctltc002 = this.ctlpc002Anterior.ctltc002;
		}
		ctltc002.setSessao(sessao);
		this.faseproc = this.ctlpc002Anterior.faseproc;
	}

	public boolean ctlcc002() {
		// COPYCODE : CTLCC002(COPYCODE)
		// BIBLIOTECA : PRODETR
		// SISTEMA : INFORMACOES DE SEGURANCA PUBLICA - SISP
		// CLIENTE : SEJUSP - SEC. DA JUSTICA E SEGURANCA PUBLICA
		// INSTITUTO DE IDENTIFICACAO, DETRAN E SEFAZ
		// PROGRAMADOR : EDU/FM DATA: 27/05/92
		// OBJETIVO : TESTE TIDOEM
		// ATUALIZACOES DATA
		// COPYCODE : CTLCC002 05/11/1997
		// BIBLIOTECA : SISP
		// PROGRAMADOR :
		// OBJETIVO : ADAPTACAO PARA O SHOPPING DO CIDADAO (P200)
		// OBS : ESTE PROGRAMA FOI REESTRUTURADO POR SOLON MIRANDA
		switch (sessao.getSisgsisp().getVlt()) {
		case 02: {
			if (!(vwDvecon.getTipoDocumento() == 19 || vwDvecon.getTipoDocumento() == 27 || vwDvecon.getTipoDocumento() == 35 || vwDvecon.getTipoDocumento() == 94 || vwDvecon.getTipoDocumento() == 98)) {
				return false;
			}
			break;
		}
		case 03: {
			if (!(vwDvecon.getTipoDocumento() == 60 || vwDvecon.getTipoDocumento() == 51 || vwDvecon.getTipoDocumento() == 58)) {
				return false;
			}
			break;
		}
		case 04: {
			if (!(vwDvecon.getTipoDocumento() == 94)) {
				return false;
			}
			break;
		}
		case 06: {
			if (!(vwDvecon.getTipoDocumento() == 98 || vwDvecon.getTipoDocumento() == 19 || vwDvecon.getTipoDocumento() == 27 || vwDvecon.getTipoDocumento() == 35)) {
				return false;
			}
			break;
		}
		case 07: {
			if (!(vwDvecon.getTipoDocumento() == 43 || vwDvecon.getTipoDocumento() == 78 || vwDvecon.getTipoDocumento() == 86 || vwDvecon.getTipoDocumento() == 79)) {
				return false;
			}
			break;
		}
		case 13: {
			if (!(vwDvecon.getTipoDocumento() == 88 || vwDvecon.getTipoDocumento() == 89 || vwDvecon.getTipoDocumento() == 90)) {
				return false;
			}
			break;
		}
		default: {
			return false;
		}
		}
		return true;
	}

	public boolean ctlcc001(Ctltc001 ctltc001) throws Exception {
		// INCLUDE : CTLCC001(COPYCODE)
		// BIBLIOTECA : SISP
		// SISTEMA : INFORMACOES DE SEGURANCA PUBLICA - SISP
		// CLIENTE : SEJUSP - SEC. DA JUSTICA E SEGURANCA PUBLICA
		// INSTITUTO DE IDENTIFICACAO, DETRAN E SEFAZ
		// PROGRAMADOR : EDU/FM DATA: 27/05/92
		// OBJETIVO : CONSULTA DADOS NO ARQUIVO DE CONTROLE(COPYCODE)
		// ATUALIZACOES DATA
		// INCLUDE : CTLCC001 04/11/1997
		// BIBLIOTECA : SISP
		// PROGRAMADOR :
		// OBJETIVO : ADAPTACAO PARA O SHOPPING DO CIDADAO (P200)
		// : ALTERACAO DA ROTINA SISSD001 (DATA N6) PARA
		// SISSD002 (DATA N8)
		// 30/09/1999
		// OBS : ESTE COPYCODE FOI REESTRUTURADO POR SOLON MIRANDA
		ctltc001.setDatemi(vwDvecon.getDataEmissao());
		ctltc001.setDatemi(funcoes.sissd002(ctltc001.getDatemi()));
		// INVERTE DATA
		valpago = vwDvecon.getValorPago();
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 18);
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", vwDvecon.getMatriculaFunc());
		vwTabele.resp = funcoes.sisst001(18, vwDvecon.getMatriculaFunc(), vwTabele.resp);
		// PESQUISA TABELA
		ctltc001.setNomfun(vwTabele.resp);
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 19);
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", vwDvecon.getTipoDocumento());
		vwTabele.chalfa = funcoes.sisst002(19, vwDvecon.getTipoDocumento(), vwTabele.chalfa);
		// PESQUISA TABELA
		ctltc001.setTipdoc(vwTabele.chalfa);
		ctltc001.setDiacntchassi(vwDvecon.getNumeroChassi());
		ctltc001.setDiacntrequer(vwDvecon.getNomeRequerente());

		if (!ctltc001.getEnviada()) {
			result.include("ctltc001", ctltc001);
			sessao.setAtributo("CTLPC002", this);
			ctltc001.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return false;
		}
		if (ctltc001 != null) {
			ctltc001.receberTela(false, result);
		}
		// TELA CONSULTA DOCUMENTOS EMITIDOS
		if (!(ctltc001.getOperacao().equals("CEC") || ctltc001.getOperacao().equals("CEN") || ctltc001.getOperacao().equals("CED") || ctltc001.getOperacao().equals("CDC") || ctltc001.getOperacao().equals("CDD") || ctltc001.getOperacao().equals("ELD"))) {
			testar();
		}
		if (ctltc002.getConf().equals("N")) {
			return false;
		}
		if (!ctltc001.getChave().trim().equals("")) {
			return false;
		}
		ctltc001.setTipdoc("");
		return true;
	}
}
